package cn.s1995.sloth.bizs.util;

import java.math.BigDecimal;

/**
 * 地理位置工具类
 *
 * @author Lex
 * @description
 * @date 2024-05-22 21:26
 */
public class GeoUtils {
    /**
     * 纬度
     */
    public static final String TYPE_LATITUDE = "latitude";
    /**
     * 经度
     */
    public static final String TYPE_LONGITUDE = "longitude";

    public static void main(String[] args) {
        BigDecimal latitude = new BigDecimal("40.7128"); // 示例纬度
        BigDecimal longitude = new BigDecimal("-74.0060"); // 示例经度
        BigDecimal temp = new BigDecimal("2702563964765483928"); // 示例

        System.out.println("Latitude is valid: " + isValidLatitude(latitude));
        System.out.println("Longitude is valid: " + isValidLongitude(longitude));
        System.out.println();
        System.out.println("Latitude is valid: " + isValidLatitude(temp));
        System.out.println("Longitude is valid: " + isValidLongitude(temp));
    }

    /**
     * 判断纬度是否有效
     * @param latitude  纬度
     * @return
     */
    public static boolean isValidLatitude(BigDecimal latitude) {
        BigDecimal minLatitude = new BigDecimal("-90");
        BigDecimal maxLatitude = new BigDecimal("90");
        return latitude.compareTo(minLatitude) >= 0 && latitude.compareTo(maxLatitude) <= 0;
    }

    /**
     * 判断经度是否有效
     * @param longitude  经度
     * @return
     */
    public static boolean isValidLongitude(BigDecimal longitude) {
        BigDecimal minLongitude = new BigDecimal("-180");
        BigDecimal maxLongitude = new BigDecimal("180");
        return longitude.compareTo(minLongitude) >= 0 && longitude.compareTo(maxLongitude) <= 0;
    }

}
